//---------------------------------------------------------------------------

#ifndef PV3DH
#define PV3DH
#include <math.h>

//---------------------------------------------------------------------------
const double PI = 3.14159265358979323846;
//---------------------------------------------------------------------------

class PV3D
{
 private:
        double _x;
        double _y;
        double _z;

        int _v;//v de vector

 public:
        PV3D(double,double,double,int);
        ~PV3D();

        double modulo();
        void normaliza();
        void mueve(double,double,double);
        void mueve(PV3D*);
        void opuesto();
        double productoEscalar(PV3D*);
        double productoEscalar(double,double,double);
        PV3D* productoVectorial(PV3D*);
        PV3D* productoVectorial(PV3D*,PV3D*,PV3D*,PV3D*);
        bool equals(PV3D*);
        bool equals(double,double,double,double);

        void traslada(PV3D*);

        inline double getX(){return _x;};
        inline double getY(){return _y;};
        inline double getZ(){return _z;};
        inline bool esVector(){return _v==0;};
        inline PV3D* clone(){return new PV3D(_x,_y,_z,_v);};
};
//---------------------------------------------------------------------------
#endif
